home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / reiserfs_acl.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  90 lines

  1. #include <linux/init.h>
  2. #include <linux/posix_acl.h>
  3. #include <linux/xattr_acl.h>
  4.  
  5. #define REISERFS_ACL_VERSION    0x0001
  6.  
  7. typedef struct {
  8.     __u16        e_tag;
  9.     __u16        e_perm;
  10.     __u32        e_id;
  11. } reiserfs_acl_entry;
  12.  
  13. typedef struct {
  14.     __u16        e_tag;
  15.     __u16        e_perm;
  16. } reiserfs_acl_entry_short;
  17.  
  18. typedef struct {
  19.     __u32        a_version;
  20. } reiserfs_acl_header;
  21.  
  22. static inline size_t reiserfs_acl_size(int count)
  23. {
  24.     if (count <= 4) {
  25.         return sizeof(reiserfs_acl_header) +
  26.                count * sizeof(reiserfs_acl_entry_short);
  27.     } else {
  28.         return sizeof(reiserfs_acl_header) +
  29.                4 * sizeof(reiserfs_acl_entry_short) +
  30.                (count - 4) * sizeof(reiserfs_acl_entry);
  31.     }
  32. }
  33.  
  34. static inline int reiserfs_acl_count(size_t size)
  35. {
  36.     ssize_t s;
  37.     size -= sizeof(reiserfs_acl_header);
  38.     s = size - 4 * sizeof(reiserfs_acl_entry_short);
  39.     if (s < 0) {
  40.         if (size % sizeof(reiserfs_acl_entry_short))
  41.             return -1;
  42.         return size / sizeof(reiserfs_acl_entry_short);
  43.     } else {
  44.         if (s % sizeof(reiserfs_acl_entry))
  45.             return -1;
  46.         return s / sizeof(reiserfs_acl_entry) + 4;
  47.     }
  48. }
  49.  
  50.  
  51. #ifdef CONFIG_REISERFS_FS_POSIX_ACL
  52. struct posix_acl * reiserfs_get_acl(struct inode *inode, int type);
  53. int reiserfs_acl_chmod (struct inode *inode);
  54. int reiserfs_inherit_default_acl (struct inode *dir, struct dentry *dentry, struct inode *inode);
  55. int reiserfs_cache_default_acl (struct inode *dir);
  56. extern int reiserfs_xattr_posix_acl_init (void) __init;
  57. extern int reiserfs_xattr_posix_acl_exit (void);
  58. extern struct reiserfs_xattr_handler posix_acl_default_handler;
  59. extern struct reiserfs_xattr_handler posix_acl_access_handler;
  60. #else
  61.  
  62. #define reiserfs_get_acl NULL
  63. #define reiserfs_cache_default_acl(inode) 0
  64.  
  65. static inline int
  66. reiserfs_xattr_posix_acl_init (void)
  67. {
  68.     return 0;
  69. }
  70.  
  71. static inline int
  72. reiserfs_xattr_posix_acl_exit (void)
  73. {
  74.     return 0;
  75. }
  76.  
  77. static inline int
  78. reiserfs_acl_chmod (struct inode *inode)
  79. {
  80.     return 0;
  81. }
  82.  
  83. static inline int
  84. reiserfs_inherit_default_acl (const struct inode *dir, struct dentry *dentry, struct inode *inode)
  85. {
  86.     return 0;
  87. }
  88.  
  89. #endif
  90.